Detection system for determining positional information about objects

ABSTRACT

A system which enables the position of each of a plurality of movable labelled objects to be determined in an environment having two or more isolated zones, wherein the objects carry transponders which, in response to encoded radio signals, transmit ultrasonic signals of which the transit times to a plurality of fixed receivers are determined, the transponders in the different zones being triggered in a common timeslot but in staggered relationship for one zone as compared to another, and an algorithm is applied to verify the consistency of the transit times having regard to the possible movements of objects from one zone to another.

FIELD OF INVENTION

This invention relates to a detection system for determining information concerning the location of objects, and which can be extended to determine movement and orientation and even physical parameters such as shape of objects in a specified environment. The invention can be applied to people and animals as well as inanimate objects such a furniture, machines, vehicles, equipment and the like, and in this connection object is intended to include any movable entity.

BACKGROUND TO THE INVENTION

Location systems are known which allow the presence or absence of an object in a specified environment (such as a room) to be confirmed or denied, and relative to one or more reference points to identify where in the environment the object is located.

EP 0485879 describes a system for locating vehicles in automatic guidance transport systems. Ultrasound is employed as a distance measuring medium whilst an infra-red link allows communication between vehicles.

WO95/14241 describes a tracking system which enables a spotlight to follow a person on a stage carrying a transponder. Again infra-red signals are used to instigate ultrasonic transmissions to determine the position of the transponder and therefore the person. The spotlight is moved accordingly.

EP 0591899 describes another spotlight controlling system for tracking a moving target (actor on a stage) carrying a transponder. Here radio transmissions establish the communication link and ultrasound transmissions are employed to determine distance and position.

In our UK Patent Applications Nos. 9725760.4, 9725718.2 and 9725759.6, there is described an indoor positioning system wherein a single radio transmitter (part of a zone manager) transmits 25 radio signals each second, at the start of a 40 ms interval called a timeslot.

The radio signals, which are picked up by mobile transmitter/receivers (transponders) in rooms to which those signals propagate, contain an address, chosen for each message. by a scheduling PC.

Each mobile transponder has a unique address, and compares this with the address contained in each incoming radio message. If the addresses match, the mobile transponder emits a short pulse of ultrasound, which is detected by a set of receivers (each room has its own receiver set). These receivers include a counter, synchronised with the radio messages by means of a wired network, and it is therefore possible to determine the time-of-flight of the ultrasonic pulse from the mobile transponder to each receiver that detects it.

An estimate of the speed of sound in each room (derived from the ambient temperature) is used to calculate the corresponding transponder-receiver distance.

A non-linear model is then fitted to these distances and the known receiver positions by a regression algorithm which runs on a positioning PC (connected to the receiver set by means of a matrix manager).

A global time signal is sent by a clock generator to the zone manager and matrix manager(s). This signal ensures that the Scheduling PC knows which mobile transponder was triggered in a particular timeslot. It also ensures that, if sufficient ultrasonic signals from that mobile transponder are detected, the positioning PC dealing with the room in which the ultrasonic signals were generated knows where a mobile transponder was at the start of the timeslot.

By correlating these two items of information in a software entity called an area manager, it is possible to determine the 3D position of a mobile transponder at a particular time.

The aforesaid system subject of the above-numbered Patent Application is later described in more detail.

The system implementation described in the aforesaid Patent Applications has 40 ms timeslots, but these could be shortened to around 20 ms without affecting the basic operation of the system. However, reverberations of an ultrasonic pulse in a typical office may last up to 20 ms, therefore the timeslots cannot be made shorter than this interval. Thus considering the case of a system in which all mobile transponders are in a single room, then with say, a 15 ms timeslot, the period in which reverberations from a mobile transponder triggered in one timeslot might reach a receiver which would overlap the period in which signals from a mobile transponder triggered in the next timeslot might reach the receivers. It would then not be possible to determine which mobile transponder had generated a particular signal, and errors may be introduced into the calculation of a mobile transponder's location by using a signal generated by another mobile transponder.

When mobile transponders are distributed between a set of rooms, however, the aforesaid limitation appears restrictive. The periods in which signals from two or more mobile transponders are in flight may overlap safely if it is certain that the signals do not overlap physically. For example, if two mobile transponders are in separate rooms, which are ultrasonically isolated from each other, then the intervals over which their signals are in flight may be overlapped without the possibility of signal cross-contamination. Similarly, in large open-plan offices, the regions in which signals are detected by receivers can be examined, and if those regions are distinct and separated by a significant distance, it can be assumed that the ultrasonic signals will not cross in space.

This consideration appears to suggest that a zone manager could address two or more mobile transponders simultaneously (or as nearly simultaneously as the radio trigger link would allow), as long as those mobile transponders were in separate rooms (or separate ultrasonic spaces).

However, bearing in mind the mobility of the transponders, as the ultrasonic signals contain no addressing information, so a set of signals detected by receivers in an ultrasonic space could have been generated by any of the addressed transponders. It would then be impossible to determine which mobile transponder was at which location.

Past location information for the mobile transponders might provide some guidance in this matter, but would not rule out the possibility that a number of the mobile transponders had been transposed.

It is therefore necessary to provide some other means by which the area manager can identify which set of detected signals was generated by which mobile transponder.

THE INVENTION

According to one aspect of the invention, there is provided a system which enables the position of each of a plurality of labelled objects in a specified environment to be determined by determining the transit time of slowly propagating energy transmitted from a transmitter on each labelled object to a plurality of receivers positioned at fixed points in or around the specified environment, and computing therefrom the actual distance of the transmitter from the receivers, wherein the transmission of the slowly propagating energy is initiated by a burst of high speed propagating energy from a master transmitter located so as to cause transmitted bursts of such high speed energy to enter the said environment, the transmitter on the object being controlled by a receiver adapted to respond to an appropriately encoded burst of such high speed energy, each said burst being encoded so that only one of the object mounted receivers is triggered by each burst (each transmitter/receiver combination being referred to as a transponder), to thereby initiate a burst of slowly propagating energy therefrom, wherein the specified environment has at least two zones substantially isolated from one another in respect of the slowly propagating energy, the times at which the transponders are triggered on objects hitherto understood to be in one zone (one set of transponders) are staggered within common timeslots with respect to the times at which the transponders are triggered on objects hitherto understood to be in another zone (another set of transponders), each timeslot being of a sufficient length to enable the receivers to respond to the slowly propagating energy transmitted by the triggered transponders in both the first zone and the or each other zone, and an algorithm is applied to verify the consistency of the transit times of the slowly propagating energy when ascribed to the different sets of transponders.

The slowly propagating energy is typically ultrasound and the high speed energy is radio waves, and in order to be able to distinguish between sets of signals from different mobile transponders, it is first assumed that two different transponders are in different ultrasound zones, the triggering times of those two different mobile transponders (one from each of the two sets) are staggered, and the system is adapted so that receivers are triggered when the first of the said two different mobile transponders is triggered, and the normal 20 ms timeslot is extended by

(m−1)×i,

(where m is the number of mobile transponders triggered in the staggered sequence, and i is the stagger time).

A nonlinear regression calculation used to determine the 3D positions of the mobile transponders should only converge to a solution if it is given a set of consistent transponder-receiver distances and receiver positions. Thus if receiver detected signals are ascribed to the wrong mobile transponder (because it has moved from one zone into another), the pulse times-of-flight calculated for the receiver detected signals will be incorrect, because an inappropriate trigger time will have been used for the signals. The corresponding transponder-receiver distances will then be incorrect, and the nonlinear regression computation will not converge to a solution.

Therefore, given a set of n possible trigger times for mobile transponders, t₁, . . . t_(n), in a method embodying the invention a first check is made to see that the number of sets of signals that were detected in independent ultrasound zones is the same as the number of mobile transponders that were triggered. If this is not so, no further use can be made of these readings, because two or more mobile transponders apparently occupy the same ultrasound zones, in which case signal cross-contamination could have occurred.

Then, for each set of signals s₁, . . . , s_(n), a set of possible corresponding transmitter-receiver distances is calculated for each trigger time, d₁₁,d₁₂, . . . , d_(nn). By running a nonlinear regression calculation on each set of transmitter-receiver distances (using an algorithm which uses the positions of receivers that detect the corresponding signals), a set of results r₁₁, r₁₂, . . . , r_(nn) is obtained. Each value of r_(xy), (where 1≦×≦n) and 1≦y≦n is either a 3D position (indicating that the set of signals s_(x) could have been generated by a mobile transponder at time t_(y)) or an error value (indicating that the set of signals s_(x) could not have been generated by a mobile transponder triggered at time t_(y)).

Ideally, one and only one set of signals will be consistent with each trigger time, making it possible to identify which mobile transponder gave rise to those signals (and hence enabling a 3D position to be ascribed to each mobile transponder).

If this is not the case, other heuristics are applied to the results to determine 3D positions for the mobile transmitters. One such heuristic might be that if one set of signals is consistent with two trigger times t_(a) and t_(b), but another set of signals is consistent with trigger time t_(a) and no other set of signals is consistent with trigger time t_(b), then the first set of signals was probably generated by a mobile transponder triggered at time t_(b).

Preferably simulations are performed to validate the heuristics used.

DESCRIPTION OF EMBODIMENTS

First, the basic system subject of the aforementioned Patent Applications will be described in detail, in order to facilitate understanding of the present invention. This basic system is shown in the accompanying drawings, in which:

FIG. 1 is a schematic diagram of a positioning system;

FIG. 2 shows the FPGA configuration of the transmitter unit,

FIG. 3 is a schematic diagram of a mobile transmitter unit for the system of FIG. 1;

FIG. 4 shows the FPGA configuration of the mobile transmitter unit on the system of FIG. 3;

FIG. 5 is a simplified block schematic of the ultrasonic receiver unit;

FIGS. 6A to 6C show how a standard ultrasonic receiver, such as shown in FIG. 5, operates as part of a transponder in the system of as shown in FIGS. 18 to 23;

FIGS. 7A to 7D show the operation of a modified ultrasound receiver, adapted to render it insensitive to spurious noise signals, in the system of FIGS. 18 to 23;

FIG. 8 shows a standard ultrasonic transmitter as used in

FIG. 9, and in the systems of FIGS. 18 to 23;

FIG. 9 shows how two transponders each incorporating standard ultrasound receivers can be mounted on a movable object such as a chair to indicate rotational movement;

FIG. 10 shows how component redundancy in a two transponder arrangement such as shown in FIG. 9, can be reduced;

FIG. 11 shows a more complex ultrasonic transmitter provided in the system of FIG. 10;

FIGS. 12A and 12B are top (or bottom) and side view of an omnidirectional ultrasound source;

FIG. 13 illustrates a more directional ultrasound source;

FIGS. 14A and 14B are top and side views of a transponder unit designed to be worn round the neck;

FIG. 14C is a view from above showing the directionality of the device shown in FIGS. 14A and 14B;

FIG. 15 is a view from above of the sound pattern which emanates from an omnidirectional ultrasound transducer (or transducer group) when attached to or partly obscured by an object which is of acoustically opaque and/or absorbing material;

FIG. 16 is a side view of a person wearing a device such as shown in FIGS. 14A and 14B;

FIG. 17 is a top view of the person shown in FIG. 16;

FIG. 18 is a block schematic overview of a complete system incorporating the present invention and also including a bi-directional radio link between the master transmitter unit and each of the addressed transponders;

FIG. 19 is a detailed block schematic of the clock generator in FIG. 18;

FIG. 20 is a detailed block schematic of a zone manager of FIG. 18;

FIG. 21 is a detailed block schematic of a matrix manager of FIG. 18;

FIG. 22 is a detailed block schematic of an ultrasound receiver such as is incorporated in each room of the system of FIG. 18; and

FIG. 23 is a detailed block schematic of a mobile transponder unit such as is mounted on objects in the rooms in the system of FIG. 18.

FIGS. 24 to 36 are Equations (1) to (13), respectively; and FIGS. 37 and 38 are Tables “A” and “B”, respectively.

OVERVIEW OF THE DRAWINGS

In the drawing a set of ultrasonic receiving elements are placed in a matrix on the ceiling of rooms in which the system is installed, and ultrasonic transmitters are placed on the objects to be located.

An addressable radio link is used to allocate timeslots, transmit the synchronising timing pulse, and allow transmitting elements to communicate with a coordinating device, eg to register an initial presence.

Radio waves are used because their speed of propagation is very fast, and unknown delays in the radio link will be very small compared to the time-of-flight of, for example, ultrasonic pulses used to measure distances so that to a first approximation the measurements can be said to be synchronised, and the unknown errors will not significantly reduce the accuracy of the system.

Alternatively a wired network may be used between the fixed receiving elements to distribute a timing pulse. This has the advantage of being less prone to interference, and potentially of lower cost.

At least three receivers must detect valid signals for the system to be able to calculate the position of the transmitter, but if all the receiving elements are coplanar, there can be ambiguity about whether a transmitter is above or below the plane containing the detector—eg the ceiling of a room. This ambiguity can be resolved if it is known for example that all transmitters are always below the ceiling.

The information gathered by this system can be used to automate computing and communications equipment in an intelligent manner. By locating the position of people and equipment for example in an office, hotel, hospital facility or home environment, it is possible for example to route phone calls, dispatch a printing job to the nearest printer, automatically identify the nearest visible screen to a user (for display of information requested by them), and intelligently select camera views in videophone conversations.

Availability of fine-grain high resolution location information can allow new methods of human-computer interaction, e.g. connection of video and audio streams by bringing their endpoints into close physical proximity.

It may also be possible to use a transmitting unit as an input device, e.g. as a wireless mouse, a 3D pointer, or for three-dimensional gesture generation.

It may also be possible to use the information gathered by the system to detect motion (by observing changes in the position of an object over time, or by Doppler methods), and the presence of opaque objects (which may shadow receiver elements), which can be deduced from patterns of reception of the distance measuring pulses.

DETAILED DESCRIPTION OF THE DRAWINGS

In FIG. 1, the position system operation is as follows:

1. To find the position of a mobile transmitting device 10, a PC 12 loads an 8-bit address of the mobile device onto its parallel port.

2. A transmitter controller, based around a Xilinx XC3020A FPGA (the FPGA configuration is shown in FIG. 2) and interfaced to the PC parallel port, reads this address five times a second, and generates a 40 KHz data stream comprising a preamble and the address from the parallel bus of the PC.

3. The 40 KHz data stream is FM encoded onto a 418 MHz radio link by a Radiometrix BIM418 radio module 16.

4. As the first bit of the preamble is generated by the transmitter controller, a signal from that controller commands an ADC 18 (HP E1413/A) to begin sampling at a rate of 100 KHz (shared between all channels being sampled).

5. Mobile devices such as 10 described in detail in later Figures of the drawings located in the area covered by the system, pick up the preamble and 8-bit address and compare the address with their own. If the addresses match, the mobile device in question transmits a 750 microsecond pulse of 40 KHz ultrasound. Typically an array of five transducers is mounted on each device, typically in a hemispherical pattern (not shown).

6. The ultrasonic pulse is picked up by one or more ultrasonic receiver units of which four are shown at 20, 22, 24 and 26. Those receiving the pulse process the signal in a manner described later before passing the processed signal to the ADC 18, which is set to sample them when instructed.

7. After the initial command to begin sampling, the ADC continues to sample at 100 KHz for 20 milliseconds and the samples values are stored. The stored sample values are passed over a serial interface to the PC 12. HP Vee software is loaded into the PC to manage the sampled data, find signal peaks, determine transmitter-receiver distances, and calculate and position relative to the receivers of the mobile device that was addressed, using the algorithms described herein before.

The FPGA configuration of the transmitter controller of FIG. 1 is detailed in FIG. 2.

In FIG. 3 the operation of a mobile radio transmitter is as follows:

1. At power-up, the Xilinx XC3020A FPGA unit 28 downloads its configuration from a Xilinx 1736PC serial PROM 30(the FPGA configuration is shown in FIG. 4). A PIC16C54 micro-controller 32 enables a Radiometrix BIM418 radio module 34 and a 4 MHz Xilinx clock 36 (built around a 4 MHz crystal and a 74HCT00 1C).

2. The XC3020A unit 28 monitors incoming 40 KHz received data until it detects a preamble and 8-bit address. It then compares the received address with its own (stored in its serial PROM), and if the addresses are identical it drives five ultrasonic transducers such as (Farnell Electronics part No. 213-214) at 40 KHz for 750 microseconds (of which one is shown at 38).

3. The PIC16C54 microprocessor 32 then disables the BIM418 radio module 34 and 4 MHz clock 36, and places the XC3020A unit 28 into powerdown mode, to save power, for 0.196 seconds. It then re-enables these components and step (2) is followed again.

Power is typically derived from two 3.6V half-AA lithium thionyl chloride batteries, regulated to 5V by an LT1129 IC.

The FPGA configuration of the transmitter controller of FIG. 3 is detailed in FIG. 4.

The operation of the ultrasonic receiver shown in FIG. 5 is as follows:

1. The ultrasonic signal is detected by an ultrasonic transducer such as a Farnell Electronics part No. 213-226 denoted by 40.

2. This signal is amplified (typically by a factor of 56) using an inverting amplifier 42. Typically this is built around one-quarter of a TL074 quad op-amp.

3. The amplified signal is rectified using a full wave active rectifier 44. Typically this is built around one-half of a TL074 quad op-amp.

4. The rectified, amplified signal is smoothed using an RC circuit 46 to obtain a signal which represents the envelope of a rectified version of the original signal.

5. This signal is passed to the HP E1413/A ADC 18 (see FIG. 1) via an RJ45 jack plug and one wire of a four wire network, which also supplies the unit with +5V, −5V and GND power lines.

Standard Receiver

A number of these are located at known locations around the environment (room) in the ultrasonic positioning system.

As shown in FIG. 6(A), each receiver 47 is triggered by a central controller 48 across a network 50. Following a timing or reset signal 49, the receiver monitors signals from a 40 KHz ultrasonic detector 52 for 20 ms as depicted in FIG. 6(B), and the time at which the incoming signal peaked for the first time is determined and held in the receiver. After the 20 ms window closes, the central controller 48 polls each receiver across the network 50 as depicted at 54 and 56 in FIG. 6(C), and retrieves the time value. The value from each receiver is either the time after the window opened at which the signal first peaked, or is zero (which indicates that no useful signal was detected).

Reducing System Response to Spurious Acoustic Signals

To confer noise immunity a two channels and two ultrasonic detector are provided as shown in FIG. 7. The first detector 52, and first channel 58 are sensitive to 40 kHz and the second, 60, 62 to another frequency eg 25 kHz.

When the receiver is triggered, both channels are reset and monitor the incoming signals for 20 ms, and determine the times (a,b) at which any received signals peak for the first time as shown in FIG. 7(B).

The value b is checked and if greater than O, the value of a is forced to O, also, as shown in FIG. 7(C). If b equals O, the value of a is available to be returned to the central controller.

When the central controller 48 polls each receiver 47 across the network is shown in FIG. 7(D), and noted by 64, the time value a from the first channel 52, 58 is returned to the controller 48, as denoted by 66. If the second channel value b had been non-zero (indicating that a spurious acoustic signal was detected), then zero is returned to the controller from the first channel 52, 58.

Transponder Design

A standard receiver-transmitter (transponder) unit 68 (such as item 10 in FIG. 1) is shown in FIG. 8.

This comprises a radio receiver 70 which picks up encoded FM signals in the 418 MHz band from a radio transmitter (16 in FIG. 1) controlled by a central coordinating device 48 (not shown).

These signals are passed through decoding logic 72, which presents the address contained in any decoded message, to an address comparator 74. If the latter identifies the address in the message as that of the transponder stored in ROM 76, it triggers a signal generator 78, which drives a set of ultrasonic transducers 80 to transmit an ultrasonic pulse.

Two such standard transponders 82, 84 are shown in FIG. 9 attached to two spaced apart points on a chair 86.

Since the two transponders 82, 84 contain similar duplicated components, an alternative arrangement is possible as shown in FIG. 10. Here, a single receiver and control unit 88 drives two individually addressable ultrasonic transducer sets, mounted at the same points on the chair 86, 90, 92 as were the standard transponders 82, 84.

The alternative arrangement is shown in more detail in FIG. 11. The unit 88 is made up of a radio receiver 94 which picks up the encoded FM signals in the 418 MHz band from the central transmitter. These signals are passed through decoding logic 96, which presents the address contained in any message detected to an address comparator 98. The latter is associated with a look-up table 100 containing in this case two rows 102, 104. Each row stores a transducer address and a port number (e.g. If transducer set 1 is attached to port 1, one of the rows will be the ordered pair (1,1)).

If the address comparator identifies that the address in a received radio message matches one of the transducer addresses in the look-up table 100 it triggers a signal generator 106. The address comparator also controls gates 108, 100, to direct the output of the signal generator 106 to the port identified by the port number in the received transducer address. It can be seen therefore that the number of radio receivers, decoders, comparators and signal generators required by a system where two or more ultrasonic transmitter transducers are to be mounted as single objects, can be reduced, with consequent economies.

Two groups of ultrasonic transducers 112, 114 are connected separately one to port 1 (controlled by gate 108) and the other to port 2 controlled by gate 110.

Introducing Directionality into the Transducers

Since ultrasonic transducers tend to produce a sound wave over a relatively small solid angle, and are therefore rather directional. A less directional transducer is shown in FIGS. 12A and 12B. This comprises a spherical body 116 from which protrude a plurality of regularly spaced transducers, one of which is shown at 118 in each of the views.

If the spherical unit 116 of FIGS. 12A and 12B is mounted so that its lower half is acoustically shielded, none of the lower transducers serves any useful purpose and could be omitted. Such a unit is shown in FIG. 13, where the hemispherical body 120 carries transducers 122.

The device 120 is shown mounted on a housing 124 which may contain electronic components making up the transponder. Less than half the number of transducers are required than in an omnidirectional source such as shown in FIGS. 12A, 12B.

FIG. 14A shows a transponder 126 capable of being worn by a person around their neck for example on a chain 128. As seen in FIG. 14C, the ultrasonic transducers 130 can be arranged to give a relatively narrow beam 132 which will project in front of the person 134. By finding the position of the person 134 and the locations of the receivers (20, 22, 24 etc in FIG. 1) at which the beam is detected, it is possible to deduce which way the person is facing.

Derivation of Orientation Information

Where the objects on which transponders omnidirectional (standard) are attached are opaque or relatively opaque to ultrasound, it is possible to obtain information about the orientation of those objects from the data collected by the receivers such as 20, 22 etc in FIG. 1. Consider a transponder 136 attached to a known point 138 on such an object 140, as in FIG. 15. The opacity of the object 140 ensures that the only sound energy 142 which can leave its vicinity does so in the direction 144. This effect may be amplified if the transmitter is itself directional to some degree.

By interrogating the receivers (20, 22 etc (FIG. 1)) in an environment containing such an object and performing a calculation on the information they provide, the location system can calculate in three dimensions the position (x,y,z) of the transponder 136. The location system also knows the positions (u₁,v₁,w₁) . . . (u_(n),v_(n),w_(n)) of the n receivers that have detected the ultrasonic signal. Using the known location of the transponder on the object and the known locations of the receivers, the direction, relative to the object, in which the ultrasonic energy will have left its vicinity, can be deduced. Correlating these three items of information allows the object's orientation to be determined, where the position of point 138 relative to the object 140 is known.

An example of how this can be derived will be described with reference to FIGS. 16 and 17 which show a standing person 146, who can face in any direction and therefore be said to be rotatable about a vertical axis 148, relative to a horizontal array of receivers one of which is denoted by 150.

The person 146 is wearing a transponder 152 on a chain around his neck. In this case, the sound energy is directed in front of the person, with the middle of the beam lying in the same vertical plane as the direction in which they are facing. FIG. 18 shows the person from above and the area in the horizontal plane over which sound energy will be radiated from the ultrasonic transducers on the transponder 152.

First it is necessary to compute the mean point of detection of the ultrasonic signal on the ceiling (û,v, w), given by Equations (5), (6) and (7).

Secondly, the vector (a,b,c) is computed from the transponder to the mean point. The vector a, b, c, is computed using Equations 18, (9) and (10).

The vector (a,b,0) usually can be taken to be a good estimate of the horizontal direction of the middle of the sound beam leaving the object's vicinity, and can be used to calculate the direction A, in which the person is orientated around a vertical axis (relative to some other horizontal direction specified by a vector (m,n,0).

The value of A in the range (−π,π] can be computed from the values of sinA and cosA given by Equations (11) and (12).

The value of A can be used as an estimate of the direction in which the person is facing.

FIGS. 18 to 23 illustrate a position detection system embodying the invention and the separate parts making up the system.

Complete System

FIG. 18 is a block schematic diagram of the complete system in which a Scheduling PC 154 dictates which one of a set of Mobile Transponders (one of which is shown at 156) are to be addressed in each of 25 timeslots per second. Addressing messages generated by the Scheduling PC are sent to Mobile Transponders via a Zone Manager 158, which also passes registration messages from the Mobile Transponders 156 back to the Scheduling PC.

Ultrasonic signals generated by the addressed Mobile Transponders 156 in response to the addressing messages sent by the Zone Manager, are detected by a set of Receivers three of which are shown at 160, 162, 164 attached to a Matrix Manager 166. Typically, there will be one Matrix Manager and a set of Receivers per room (or other space in which ultrasound is confined).

A Positioning PC 168 connected to the Matrix Manager 166 derives the air temperature of the room in which the polled receivers are located via a thermometer 170, and polls the Receivers 160, 162 etc to retrieve the three measurements derived from the received ultrasonic signals, and uses this data, and the measurement of air temperature in the room 172, to calculate the 3D position of the source of the ultrasonic signals.

A second set of receivers (174, 176, 178) in a second rom 180 are also shown, with associated matrix manager 182 and positioning PC 184. Other similar set-ups can be provided for each room in a building, each linked to a central area manager 186.

Information from the Scheduling PC and the Positioning PCs is collated by an Area Manager 186, which produces a stream of location events that may be sent to users or applications. In order to perform this collation, elements of the system must be synchronised—this is achieved using a 25 Hz signal from a Clock Generator 188 and initialising PC 190.

Radio signals are transmitted to the mobile transponder radio receivers from a master radio transmitter/receiver unit 189 operating at 418 MHz with FM encoding.

Individual Parts of the System

(1) Clock Generator (FIG. 19)

The Clock Generator 188 sends an accurate 25 Hz clock pulse and global time value to the Zone Manager and the Matrix Managers across a serial network. The generator has a 25 Hz 192 clock which drives a time store and counter 194. The time store holds the current global time value, and the counter increments it with every pulse. An initial global time value may be loaded from a the PC 190 connected to the Clock Generator (see FIG. 18).

After incrementing the current global time value, that value, and the clock pulse are gated to a serial network interface 196, which distributes these signals to other system components, so as to synchronise them.

(2) Zone Manager (FIG. 20)

Each Zone Manager (158) handles the radio interface between the Scheduling PC and the Mobile Transmitters. As shown in FIG. 20, it has a Data Store 198 which is filled by the Scheduling PC with the next packet to be transmitted. When this process is complete, the Zone Manager unasserts the “Ready” status line. On receipt of a clock pulse from the synchronisation network (200) along 202, the Zone Manager stores the associated time in a Time Store, 204, and triggers a Message Generator 206. The Message Generator sends a 136-bit preamble followed by a Manchester-encoded copy of the stored packet at 40 kbps to the transmit side of a 418 MHz FM Radio Transceiver 208, thus sending a DC-balanced copy of the desired message to the Mobile Transmitters.

After sending the message, the Zone Manager triggers a Message Decoder 210, which looks at the incoming signals picked up by the receive side of the Transceiver 208. Any incoming radio message sent by the radio transmitting section of the Mobile Transponder is decoded and error-checked, and if the message is valid it is stored in a Message Store 212.

When time has been allowed for the outgoing message to be sent and any incoming messages to be detected, the Zone Manager asserts the “Ready” status line, indicating that the Scheduling PC can review the stored time and any stored message. To this end the scheduling PC controls Data Path Switch 214 to supply trigger tune (from 204) and/or message (from store 212) as appropriate, before loading the next packet to be transmitted.

The global clock synchronisation network signals pass unchanged through the Zone Manager.

(3) Scheduling PC

The Scheduling PC 154 (FIG. 18) is programmed to determine the order in which Mobile Transmitters should be addressed based on the Location Qualities of Service (LQoS) assigned to them (either statically, or dynamically by users and applications). The Scheduling PC also constructs the packets to be sent to Mobile Transponders (via the Zone Managers), and performs resource reclamation.

The algorithm used to choose the next Mobile Transmitter to be addressed is described as follows:

Scheduling Algorithm

Consider a system having the following parameters:

(1) The length of a timeslot is 40 ms (ie the system is capable of determining 25 positions per second)

(2) The transmitters each have a unique 16-bit address

(3) The reserved address 0 is not allocated to any transmitter.

(4) Every transponder is also a member of one transponder group, also identified with a 16-bit number (again, identifier 0 is reserved).

(5) The scheduler is a CORBA-based distributed software programme (Object Management Group, The Common Object Request Broker; Architecture and Specification. Revision 1.1, OMG Document Number 91.12.1, December 1991) running on a workstation.

(6) Location Quality of Service (LQoS) is expressed as an integer representing the desired period of positioning (eg an LQoS of 25 requests one position every 25 timeslots, ie once per second).

In accordance with the invention, the Scheduler is adapted to maintain a scheduling table stored in memory. Each row of the table contains six entries:

1. A 16-bit transponder address, a

2. A 16-bit group identifier for the transponder, q

3. The LQoS for the transponder, l

4. A real number called the Effective LQoS (or ELQoS), e

5. A real number called the score, s

6. A bit called the slotswap bit, b.

A row in the table is described by an ordered six-type (a,g,l,e,s,b). A global flag called “excess-demand” (to be described later) and an integer called “last-group” are also maintained by the Scheduler.

When the Scheduler process is initialised, the scheduling table is empty. A single row (0,0,1,1,0, false) is immediately added. This entry represents a dummy transponder. The excess-demand flag is set to false, and the last-group is set to zero.

Adding or Changing a Request

An operator (user) or software application can contact the Scheduler over its CORBA interface to indicate that the location requests for a transponder group should be added or changed. It should be noted that if two or more transponders are members of the same transponder group, then their location requests should not be capable of being added or changed separately. Furthermore, the requests involving the dummy transponder address 0 and dummy transponder group ID 0 will be ignored. The user or application passes the following information to the scheduler:

g, the transponder group identifier

l, the desired LQoS for members of this transponder group

a₁, . . . , a_(n), the transponder address of members of this transmitter group.

For each transponder address a₁, . . . , a_(n), the scheduler then adds or modifies an entry in the scheduling table.

For values of i between 1 and n, if a row of the form (a_(i),g_(i),e_(i),s_(i),b_(i)) is present in the table, it is updated to (a_(i),g,l,e_(i),s_(i),b_(i)), otherwise a row (a_(i),g,l,0,0,false) is added.

The scheduler is then arranged to recalculate the ELQoS for each of the m entries in the table.

First, it calculates the total level of LQoS demand, (t), where t is given by Equation (1).

Next it updates the ELQoS for each of the n entries in the scheduling table, e_(i), with a new value e′_(i). If t is less than 1, then e′_(i) is given by Equation (2).

Otherwise, if t is greater than or equal to 1, e′_(i) is given by Equation (3).

Deleting a Request

When a user or application contacts the Scheduler over its CORBA interface to indicate that a location request for a transponder should be deleted, it also passes the address of that transponder a_(i), to the Scheduler. (The entry corresponding to transponder address 0 may not be removed). If the scheduler finds that an entry for that transponder is present in the table, it removes the corresponding row (a_(r),g_(r),e_(r),s_(r),b_(r)) from the table. The scheduler then updates every other row in the table (a_(x),g_(x),l_(x),e_(x),s_(x),b_(x)) to (a_(x),g_(x),l_(x),e_(x),s′_(x),b_(x)) where the value of S′_(x) is given by Equation (4),

In Equation (4) n is equal to the number of rows in the table before removal of the location request. The scheduler recalculates the effective rates based on the remaining table entries as described in the previous section.

Allocating Timeslots

Once every 40 ms, the Scheduler must tell the central coordinating device (across a CORBA interface) the address of the transponder which should be located next. It does this by examining the contents of the scheduling table and any attempts to update the table are blocked until this examination is complete.

First, the Scheduler steps through each row in the scheduling table. If the last-group register does not contain 0, and the scheduler encounters a row in which the transponder group ID is the same as the contents of the last-group register, and in which the swap-slot bit is false, it sends the transponder address contained in that row to the coordinating device, and sets the swap-slot bit on that row to “true”.

Otherwise, the Scheduler operates in accordance with the following algorithm:

(5)

1. Choose the row in the table with the highest score (a_(c),g_(c),l_(c),e_(c),s_(c),b_(c)).

2. If b_(c) is false, for each row of the table which has the transmitter group ID g_(c) set the swapslot bit to false. Then, update each row in the table (a_(x),g_(x),l_(x),e_(x),s_(x),b_(x)) to (a_(x),g_(x) l_(x),e_(x),s′_(x), b_(x)) where s′_(x), is given by

s′_(x)=(s_(x)+1/e_(x))

Next, the single chosen row in the table is further updated to (a_(x),g_(c),l_(c),e_(c),s″_(c),b_(c)) where s″_(c)=s′_(c)−1 The lastgroup register is set to g_(c).

Finally, the coordinating device is informed of the address a_(c) of the transponder that should be located next (if a_(c) is zero, this indicates that no transponder should be addressed in the next timeslot).

3. If b_(c) is true, update each row in the table (a_(x),g_(x),l_(x),e_(x),s_(x),b_(x)) to (a_(x),g_(x),l_(x),e_(x),s′_(x),b_(x)) where s′_(x) can be computed as above. Next, the single chosen row in the table is further updated to (a_(c),g_(c),l_(c),e_(c),s″_(c), false) where s″_(c)=s′_(c)−1. The row in the scheduling table with the highest score is chosen again, and the above steps are retaken.

Once the next Mobile Transmitter's address has been determined, the Scheduling PC determines whether an application requires that an “Output Data Value” should be sent to that transmitter. It also determines whether applications have indicated that the transmitter is no longer responding to addressing messages (perhaps because it has been removed from the range of all the receivers in the room or building in the case of a multi-zone system). If so, the transmit or drop bits in the next message should be set, to check the situation, or reclaim resources (as described above).

The Scheduling PC also determines whether any Mobile Transmitters should be woken prematurely from a sleeping state, in which case the wake bit should be set. It also can acknowledge that a mobile transponder has been registered with the system whether this has been done by an operator, or an application according to data/time or data forcing the system to look for a particular mobile transponder address or has been achieved automatically.

Two values, s (the score) and e (the Effective Location Quality of Service) associated with the Mobile Transponder to be addressed, and maintained by the scheduling algorithm, can be used to estimate a time for which that Mobile Transponder may go to sleep. It can be shown that, assuming the LQoS demands managed by the system do not change, the Mobile Transmitter will not be addressed in at least the next st timeslots, given by Equation (13).

A message packet is then constructed from the collected information. The packet has a number of Cyclic Redundancy Check (CRC) error checking codes embedded within it(the standard CRC-8 code is used), and its format is given in Table (A).

If no data value is to be sent to the Mobile Transponder, the Output Data Value field is set to 255. Similarly if no Mobile Transponder registrations require acknowledgement, the Registration Acknowledgement field is set to zero.

The message packet is loaded into the Zone Manager's Data Store in 8-bit chunks. After the last chunk is loaded, the Scheduling PC start to continuously poll the Zone Manager's “Ready” status line. This line is asserted when the Zone Manager has transmitted any stored message where the radio receiver section of the transceiver 208 is being employed.

At this time, the Scheduling PC retrieves (from the Zone Manager) the time at which the transmission was made, and sends an event of the form (identifier, time) to the Area Manager across a CORBA interface (Object Management Group, The Common Object Request Broker; Architecture and Specification. Revision 1.1, OMG Document Number 91.12.1, December 1991), indicating the 16-bit identifier of the addressed Mobile Transmitter and the time of addressing.

Finally, the Scheduling PC retrieves from the Zone Manager any incoming message sent by the radio transmitter of the address Mobile Transponder (where fitted and utilised). Any such message will contain an address and button status bits. The Scheduling PC must deal with any registration request detected in this way, and/or inform any applications which are interested in “Button Pressed” events from Mobile Transponders.

It then identifies the address of the next Mobile Transmitter by repeating the scheduling process described in this section.

(4) Matrix Manager (FIG. 21)

The Matrix Manager shown in FIG. 21 resets ultrasound Receivers (eg 20, 22 etc in FIG. 1) connected to it, at a precise time, and acts as an interface between the Positioning PC and those Receivers.

On receipt of a clock pulse along line 216 from the synchronisation network 200, the Matrix Manager stores the associated time in a Time Store 218, waits for 9.65 ms to allow the radio message to be sent and sends a “Reset” signal over its Downstream Network Interface 220 to the ultrasound Receivers connected to it. After 20 ms, the Matrix Manager asserts the “Results Ready” status line, which indicates to the Positioning PC that the Receivers will have made their measurements, and that the Positioning PC can now use the “Outgoing Data” bus to poll those Receivers to determine the results.

The Positioning PC can also retrieve the time at which the Receivers made their measurements by recovering the time held in the Time Store 218. It can also retrieve the latest measurement of the temperature in the room measured by a temperature sensor 222, the output of which is continually digitised by ADC 224 and stored in memory 226 for retrieval for example when the Receivers are reset.

The Positioning PC can also send commands to the ultrasound Receivers through the “Outgoing Data” bus to change the peak detection algorithm or thresholds used by the ultrasound Receivers.

When the Positioning PC asserts the “PC Ready” status line to indicate that it has performed all necessary actions associated with the current measurements, the Matrix Manager unasserts the “Result Ready” status line and prepares itself for the next clock pulse.

Results from the Receivers are accepted via the upstream Network Interface 228. A Data Path Selector switch 230 (FIG. 20) allows the Positioning PC to retrieve those results or the digital temperature measurement from 226, as desired.

The global clock synchronization network signals pass unchanged through each Matrix Manager in turn.

(5) Receiver (FIG. 22)

The Receiver shown in FIG. 22 detects ultrasonic signals from the transducer on the Mobile Transponders, and converts them to electric signals and processes those signals to determine the time at which the received acoustic signal peaked for the first time. Receivers are connected in a serial daisy-chain to a Matrix Manager by two networks—an upstream network, 232 which carries information to the Matrix Manager, and a downstream network 234 which carries information from the Matrix Manager. Each Receiver has an address which is unique amongst those connected to the same Matrix Manager, allowing it to be polled by the Positioning PC also connected to that Matrix Manager. The address may be coded for example by setting switches 235 on the PCBs of the Receivers.

When a Receiver detects a “Reset” signal condition on the downstream network 234, it resets an on-board counter 236 and peak detection circuit 238. For the next 20 ms, the counter is updated at a frequency of 20 kHz, and the peak detection circuit monitors a signal from a 40 kHz ultrasonic transducer which has been amplified in 242, rectified in 244, smoothed in 246 and digitized in 248.

When the peak detection circuit indicates that the signal has peaked for the first time, counter 236 is stopped.

If the 20 ms window closes before a peak is detected, the value 0 is formed in the counter.

After the 20 ms period, the Receiver may be polled by the Positioning PC via the Matrix Manager and the downstream network 234. If an address comparator 250 in the Receiver linked to the switch coded address 235 detects that the Receiver is being polled, the stored value in the counter is sent back to the Positioning PC via the upstream network 232 and Matrix Manager, together with error-checking information. Incoming information from other Receivers on the upstream network is blocked during this period.

Additional lines on the downstream network 234 can be used by the Positioning PC to change the peak detection algorithm used by the Receiver. Two algorithms may be used:

Stop the counter when the signal has risen above a certain absolute threshold and when the signal peaks for the first time. This is the default algorithm.

Stop the counter when the signal has risen above a certain threshold relative to the lowest signal value seen so far. this algorithm is more useful when the offset of the Receiver amplifier is liable to change.

The threshold source may be a bank of switches 252 on the Receiver PCB, or a Threshold Memory 254. The threshold source may, again, be changed by the Positioning PC by using lines on the downstream network. To set the value in the Threshold Memory 254, the Positioning PC sets the poll address on the downstream network to the new value, and then asserts further lines such that each of the Receivers load the poll address value into a Temporary Threshold Memory 256. The Positioning PC then sets the poll address on the downstream network to the address of the Receiver whose threshold must be altered, and asserts further downstream network lines to transfer the value from the Temporary Threshold Memory 252 into the Threshold Memory 254 of the appropriate Receiver.

(6) Mobile Transponder (FIG. 23)

The Mobile Transponder shown in FIG. 23 can be attached to objects, and generates ultrasonic signals 258 by which its position and possibly orientation can be determined.

Incoming radio messages from a Zone Manager are picked up by a 418 MHz FM Radio Transceiver 260 and decoded by a Message Decoder 262. The Message Decoder also uses error-checking information in the incoming messages to determine if bit errors on the radio link have occurred.

After the message has been received, the Power-Saving Supervisory Circuit 264 switches off the receive side of the Radio Transceiver 160.

A Message Generator 266 allows the Mobile Transponder to contact the Zone Manager through the transmit side of the Radio Transceiver 260. The Message Generator is used by a Registration Controller 268, which handles attempts to make the Zone Manager aware of the presence of the Mobile Transponder, and is also activated when a user presses one of two buttons 270, 272 on the Transponder (if fitted).

If a good message is received, the Message Decoder compares the transmitter address contained in the incoming message with that stored in ROM 274. If the addresses match, then:

1. A trigger signal is sent to a Pulse Signal Generator 276, which drives a set of ultrasonic transducers 278 (arranged around a hemispherical shell) at 40 kHz for 50 μs to produce the ultrasound pulse 258.

2. A counter in the Power-Saving Supervisory Circuit is loaded with the value of the sleep time in the message (via line 280).

3. If the drop bit in the message is set, a Registration Controller 282 on the mobile device is informed that the Zone Manager will no longer address this Mobile Transmitter. The Registration Controller will then begin attempts to register with the Zone Manager. If the drop bit is not set, but the Mobile Transmitter is attempting to register with the Zone Manager, the Registration Controller 282 is informed that the registration attempts were successful, and it need not attempt to register again.

4. If the transmit bit in the message is set, the Mobile Transponder prepares to immediately transmit its address over its bidirectional radio interface (260) to 208.

5. The 8-bit Output Data Value in the message is sent to a 10-way data port on the Mobile Transponder (the port also includes a ground line, and a strobe line which indicates when the data is valid).

If the Message Doctor indicates that the incoming message is not for the current transmitter, but that the Registration acknowledgement field contains the address of the current transmitter, then the Registration Controller 282 is informed that the Zone Manager is now aware of this Mobile Transponder, and that no more registration attempts are needed.

After the incoming message has been decoded, the Mobile Transponder may attempt to send a data packet back to the Zone Manager through the transmit side of the 418 MHz radio transceiver 260. This behaviour may be caused by a number of events:

1. The transmit bit in the incoming message was set, and the transmitter address encoded in the incoming message is the same as that of the Mobile Transponder.

2. A button switch on the Mobile Transponder has been pressed.

3. The Registration Controller 282 is attempting to register the Mobile Transponder with the Zone Manager, and the transmit bit of the incoming message is not set, and the probabilistic “Slotted ALOHA” contention-resolution protocol (driven by a pseudo-random number generator) indicates that the Mobile Transponder should attempt to send data to the Zone Manager in this timeslot.

If one of these events does occur, a message generator waits a 25 μs turnaround time before switching on the transmit side of the Radio Transceiver 260, and sending (at 40 kbps) a 168-bit preamble followed by a Manchester-encoded version of the packet whose format is shown in Table (B).

A Cyclic Redundancy Check code may be included in the packet to detect link errors or collisions with transmissions from other Mobile Transmitters. A standard CRC-8 algorithm is used to generate the CRC.

After transmission of the preamble and packet, the Message Generator switches off the transmit side of the Radio Transceiver 260.

The Power-Saving Supervisory Circuit 264 is used to control other parts of the Mobile Transmitter in order to save power. It is driven by a 32 kHz clock 284, which allows it to be low-powered itself. The prime function of this circuit is to turn on the receive side of the Radio Transceiver 260 every 40 ms, so that the next incoming radio message from the Zone Manager may be detected and decoded. However, if the Sleep Counter is not zero (indicating that the Mobile Transponder may enter an even lower-powered sleeping state), the Power-Saving Supervisory Circuit 264 decrements this counter once every 40 ms, and only activates the receive circuitry of the Mobile Transmitter 260 once every eight timeslots (so that the wake bit periodically may be checked). The Power-Saving Supervisory Circuit 264 also controls an 8 MHz clock 265 which is used by the Message Decoder 262 and Message Generator 266.

If the Message Decoder 262 indicates that the wake bit in the incoming message was set, then the Power-Saving Supervisory Circuit 264 sets sleep counter 286 to zero. This action ensures that the transmitter will check each incoming message until it is instructed that it no longer needs to do so.

If the Message Decoder 266 indicates that an error occurred on the radio link, or that no message was received when one was expected, the Mobile Transponder will enter a “Searching” mode. In this mode, the low-power supervisory circuit switches on the receive side of the 418 MHz Radio Transceiver 260 approximately once every 80 s, for a period of just over one second, and the Registration Controller 282 is informed that it should attempt to register with the Zone Manager. The “Searching” mode is also the default state of the Mobile Transponder when it is switched on for the first time.

(7) Positioning PC

A 200 MHz Pentium-pro IBM compatible PC with a 48 line parallel digital IO card may be used and the same hardware is suitable for all PCs shown.

Associated with each Matrix Manager is a Positioning PC 154, 168, 184 which computes the compositions of Mobile Transmitters from the time-of-flight values determined by Receivers 160, 1672 etc (whose surveyed positions are stored in memory by the Positioning PC). It continuously polls the Matrix Manager to determine whether the Receivers have been triggered and have results which should be processed. When the “Results Ready” status line is asserted by the Matrix Manager, the Positioning PC (via the Matrix Manager) polls each of the n Receivers connected to the Matrix Manager, retrieves a data value from each (along with error checking information), and unasserts the “PC Ready” status line.

For each Receiver that returns a good non-zero data value (ie. the error checking information indicates a good data value, which, being non-zero, indicates a signal was detected by that Receiver), that data value is used to calculate a transmitter-receiver distance. The Positioning PC interrogates the Matrix Manager such as 166, 182 and determines the current temperature of the room, t (measured in ° C.). It is then possible to calculate the speed of sound in the room, c, from Equation (14).

Calibration of the system during installation provides a value, d, for the fixed delays in the system (such as the time taken to decode the radio message by the Mobile Transponder). From the pulse time-of-flight, fi, from the Mobile Transponder to Receiver i, the corresponding transponder-receiver distance l_(i) can then be calculated, as l_(i)=cx(f_(i)−d).

If a Mobile Transponder is at the coordinates (u,v,w) and the distance from it to a Receiver at the coordinate (x,y,0) is l, are that all Receivers lie in the plane of the ceiling. It can be shown that l² is given by Equation 15.

Equation 1 can be regarded as a nonlinear model, see Myers, R. Classical and Modern Regression with Applications, PWS-KENT, 1990, and can use nonlinear regression to fit the values of l,x and y for several Receivers to this model. This gives estimates û, v and ŵ². This allows the determination of a best least-squares estimate for the Mobile Transponder's position as the coordinate (û, v, −ŵ²), taking the negative square-root of ŵ² to fix the transponder below the ceiling. A shadow solution ((û, v,−ŵ²) corresponds to an impossible transmitter position above the ceiling. The non-linear model has three degrees of freedom, and knowledge of at least three transponder-receiver distances is therefore required to calculate the Mobile Transponder's position. Furthermore, the model cannot be fitted to the data if all Receivers that detected a signal are collinear.

Reflected signals from objects in the environment can lead to incorrect distance measurements. Normally, the first signal peak detected by a Receiver will be due to a pulse travelling along a direct line from the transponder. This pulse will arrive before any reflected pulses, which must travel along longer paths. The distance thus measured by the system will be that of a straight line joining transponder and receiver. Occasionally, however, the direct path may be blocked, and the first received signal peak will be due to a reflected pulse. In this case, the measured transponder-receiver distance will be greater than the true distance, leading to an inaccurate estimate of the transponder's position.

Two techniques have been developed for identifying and eliminating inaccurate distance measurements. First the difference of two transponder-receiver distances cannot be greater than the distance between the Receivers. If, by comparing pairs of measurements, two Receivers are found whose results do not satisfy this test, it can be stated that the larger of the two distances must be a measurement along a reflected path (remembering that reflections can only increase the measured distance), and can discard that result from the data set.

Secondly, a statistical test has been developed based upon the observation that the proportion of Receivers that detect only reflected signals is small. Studentized residuals (Glantz, S., Slinker, B. Primer of Applied Regression and Analysis of Variance. McGraw-Hill, 1990) provide one method of identifying outliers in data sets, and can be calculated for each of the distance measurements during the nonlinear regression process. An incorrect measurement will be considered to be an outlier in the full set of measurements, and it is likely to have a large studentized residual. The result with the largest positive studentized residual is removed from the set of distance measurements (remembering, again, that reflections can only increase the measured distance), before re-computing the nonlinear regression and residuals.

The statistical test is repeated until the variance of the remaining measurements fall below an acceptable threshold (suggesting that all outlying data points have been eliminated), or only three measurements remain. A final calculation of the transmitter's position is then made using those data values.

From the calculated position and the known locations of the Receivers that detected a signal from the Mobile Transmitter, it is also possible to estimate θ, the orientation of the Mobile Transmitter around a vertical axis. The method used to perform this estimation has been described above.

The Positioning PC then retrieves (from the Matrix Manager) the time at which the measurements used in the position calculation were made. Finally, it sends an event of the form (x,y,z,θ, time) to the Area Manager across a CORBA interface, indicating the calculated position (x,y,z), orientation (θ) and time of measurement, and informs the Matrix Manager that it is ready for the next set of readings (by asserting the “PC ready” status line).

It should be noted that the Positioning PC (168, 184) can send commands to individual Receivers (via the Matrix Manager) to change the peak detection algorithm they use, or to change the threshold they store in memory, or to change the source of the threshold that the peak detection algorithm uses (either on-board switches, or memory).

(8) Area Manager (FIG. 18)

As shown in FIG. 18 data from the Scheduling and Positioning PC's is transmitted to the Area Manager 186 which comprises inter alia a data processor (such as a PC). This gathers events of the form (identifier, time) from the Zone Manager, and events of the form (x,y,z,θ,time) from each Matrix Manager.

An associative memory in the Area Manager links events using the time parameter, and generates a stream of events of the form (identifier, x,y,z,θ,time)

It can be seen that these events contain identification, location, orientation and time information, and therefore allow the position and orientation (at a particular time) of a transponder to be determined.

This event stream (shown at 288 in FIG. 1) may be passed on to users and client applications.

Power Saving at the Receiver-transmitter Units

Power saving can be achieved in the transponders by switching the receiver into a quiescent or OFF mode during the time intervals between addressing, and if the frequency at which a particular transponder unit is to be addressed is known this can be encoded into the radio message so that after decoding the message the receiver section can be turned off for that period of time.

Control Signals Using Radio Transmitters

Additional information in the form of control signals may be encoded into the radio addressing signals transmitted to the transponder units so as for example to control a display or robotic device, associated with the transponder unit.

Shape Determination

Electrical signals indicative of the positions of a plurality of transmitters located at selected, strategic points on an object, may be derived and stored and processed, for example by comparison with stored electrical signal data or processed by means of an algorithm, to produce a decision signal indicative of the shape of the object. This may enable a new object to be identified by reference to its shape.

Display of Monitored Area

Electrical signals indicative of the position and/or orientation of an object whose position and orientation (relative to the area) have been determined by position determining systems, may be employed to control the display of a graphical representation of the object on a TV or computer monitor, together with graphical representations of other objects also identified by positions (and orientation if measured).

Modifications According to the Invention

The following changes to the system described with reference to FIGS. 1 to 23 are made to implement the system in accordance with the present invention, it first being understood that, as previously explained, the timeslot in the upstream described could safely be reduced to 20 ms, without affecting the way in which the system operates.

First, a stagger time is adopted of 10 ms (this is a quite conservative stagger time). The clock generator is charged so that it signals timeslots of 30 ms, allowing two mobile transponders to be addressed in a staggered sequence. Also the receivers are altered so that they receive signals over a 30 ms window.

The Scheduling PC selects two mobile transponders to be addressed during the next timeslot. For this purpose, the following algorithm is used:

1. Set variable a to zero.

2. If a is zero, use the existing scheduling algorithm to select the next two mobile transponders to be addressed. Set variable b to the address of the first, and variable c to the address of the second. If a is not zero, set variable b to be equal to the value of a, and use the existing scheduling algorithm to select the next mobile transponder to be located, placing its address in variable c.

3. If the last position information for the mobile transponders b and c suggests that they are in separate ultrasonic spaces, locate both mobile transponder b and mobile transponder c in the next timeslot (b at the start of the timeslot, c 10 ms later), and set variable a to zero. Otherwise, locate the mobile transponders with addresses b and zero in the next timeslot (b at the start of the timeslot), address zero 10 ms later), and set variable a to be equal to the value of c.

4. Go to step 2.

This scheduling algorithm has the property that the Location Quality of Service (LQoS) demand for each mobile transponder is at least satisfied, but may be exceeded by a factor of two. Obviously, the choice of address is strongly affected by the previous positions of the mobile transponders, in order to try to select mobile transponders that are in independent ultrasonic spaces. For this purpose the scheduling PC holds a 3D description of all ultrasonic spaces to allow it to determine if two points are in the same space. It should also be noted that the sleep times calculated by the algorithm for the two mobile transponders are divided by a factor of two, so as to ensure that they remain conservative estimates.

The format of the message packet to be sent to the mobile transponders via the zone manager is changed to reflect the fact that it must now contain information to be sent to two addresses. A suitable format is shown in Table A appended hereto.

It is to be noted that the registration of up to two mobile transponders in the previous timeslot may now be acknowledged using the two registration acknowledgement fields. The zone manager is changed to accept this new packet format from the scheduling PC and transmit it to the mobile transponders. After the packet is sent by the zone manager, the scheduling PC retrieves the time at which the packet was sent from the zone manager. It then forwards an event of the form (identifier1, identifier2,time) to the array manager across a CORBA interface, indicating the 16-bit addresses of the two mobile transponders located in the last timeslot, and the time of the start of that timeslot.

The mobile transponders are changed to reflect the new packet format and length. Since a mobile transponder may be triggered by either of the addresses contained in the message sent from the zone manager, its message decoding logic is changed. If a mobile transmitter is triggered by one of the two addresses, this logic deals with the corresponding drop and transmit bits, sleep time and output data value. Mobile transponders which are attempting to register with the zone manager also check both of the registration acknowledgement fields within the incoming message to see whether their registration has been successful.

If a mobile transponder is triggered by the first address in the incoming message, the pulse generation circuit immediately drives the ultrasonic transducer set with a 40 kHz signal for 50 s. If a mobile transponder is triggered by the second address in the incoming message, the pulse generation circuit waits for exactly 10 ms before driving the ultrasonic transducer set with a 40 kHz signal for 50 μs.

The message generator which sends data packets to the zone manager is changed to reflect the fact that two mobile transponders may be required to transmit their address to the zone manager in the same timeslot. Thus two opportunities or transmission slots for a mobile transponder to contact the zone manager are provided in each timeslot. The first transmission slot starts 25 μs after the end of the incoming radio message, and the second transmission slot starts 25 μs after the end of the first transmission slot. When using a transmission slot, the mobile transponder sends (at 40 kbps) a 168-bit preamble followed by a Manchester-encoded version shown in Table B appended hereto.

The length of the transmission slot is the time taken to send the preamble and Manchester-encoded packet. If a mobile transponder is triggered by the first address in an incoming radio message, and the corresponding transmit bit is set, the mobile transponder will use the first transmission slot to send its address back to the zone manager. If the mobile transponder is triggered by the second address in the message, and the corresponding transmit bit is set, it will use the second transmission slot to send its address to the zone manager. Any mobile transponder which is attempting to register with the zone manager, or which is reporting a button press, may transmit its address and button status in any transmission slot for which the corresponding transmit bit is not set (ie which is not reserved for one of the triggered mobile transponders). The zone manager is changed to allow messages sent in both transmission slots to be received and passed on to the scheduling PC.

The matrix manager now waits 12.95 ms after seeing a trigger signal from the clock generator before triggering its associated receivers (to allow the longer radio message to be sent to the mobile transponders). When triggered, each set of receivers (one per room or other isolated space) opens its receive window for 30 ms. At the end of that period, the positioning PCs connected to the matrix managers poll the receivers to determine firstly whether they saw any ultrasonic signals, and secondly, if they did, the time after the trigger signal at which the incoming ultrasonic signal peaked for the first time. Each positioning PC calculates two sets of transmitter-receiver distances from the measured signals—one assumes that the mobile transponder was triggered at the start of the timeslot, the other assumes that it was triggered 10 ms later. The nonlinear regression calculation is then run twice by the positioning PC, using each of the two distance sets and the positions of the receivers that detected the ultrasonic signals. Each regression calculation yields a result, either a 3D position and orientation if the regression converges to a solution, or an error value if it does not. The positioning PC then sends an event of the form (result1,result2, time) to the array manager over a CORBA interface, indicating the results for the two nonlinear regression calculations for signals detected in the last timeslot, and the time of the start of that timeslot.

The area manager must combine the information streams from the scheduling PC and the positioning PCs. A simple (though not necessarily optimal) algorithm which perform this task is now described.

First, it is assumed that for a particular timeslot, the addresses have been gathered of all those mobile transponders that were located (x and y, where mobile transponder x is located 10 ms before mobile transponder y), and also the two results have been gathered from each of n positioning PC's (ie a collected a data set r₁₁, r₁₂, r₂₁, r₂₂, . . . , r_(n1), r_(n2)). From that data set, another data set s₁₁, s₁₂, s₂₁, s₂₂, . . . s_(n1), s_(n2) is constructed where s_(ij)=1 if r_(ij) is a good 3D position and orientation, and s_(ij)=0 if r_(ij) is an error value indicating non-convergence of the nonlinear regression model.

If y is not equal to zero (ie the second address in the message was not a dummy address) it is checked that two signals have been detected in separate ultrasonic spaces. For this to be true, it must be possible to find i and j such that s_(i1)=1 or s_(i2)=1 and s_(j1)=1 or s_(j2)=1 and i≠j, but not possible to find k such that s_(k1)=1 or s_(k2)=1 and k≠i≠j. If this is not true, all results for this timeslot must be discarded, because signal cross-contamination could have occurred.

Next, it is checked that only one good set of ultrasonic signals have been identified from each trigger time within the timeslot. For this to be true, there must be only one i such that s_(i1) is true, and at most one j such that s_(j2) is true. If it is found that this statement is not true, all results for this timeslot must be rejected, because it is not possible to determine in which ultrasonic space a mobile transponder is likely to be (although application of heuristics could make some progress in this case). If it is found that the statement is true, it is possible to assign result r_(i1) to the mobile transponder with address x, and any result r_(j2) to the mobile transponder with address y. The area manager then knows the time at which each mobile transponder was triggered and also the position and orientation of the mobile transponders at those times, and it can form this information into an event stream which is passed on to users and client applications.

It can be seen that the above implementation is capable of locating two mobile transponders in a 30 ms period (assuming that two mobile transponders in different ultrasonic spaces and that the system operates correctly). Therefore, the potential aggregate update rate is around 66 Hz, rather than the 50 Hz which was previously possible. Furthermore, it is possible to achieve higher location rates by triggering more than two mobile transponders in a staggered sequence.

TABLE 1 Description Size (bits) wake bit 1 Padding (zeroes) 8 CRC 1 8 drop bit #1 1 drop bit #2 1 Transmitter Address #1 16 Transmitter Address #2 16 CRC 2 8 transmit bit #1 1 transmit bit #2 1 Padding (zeroes) 13 Sleep Time #1 24 Sleep Time #2 24 CRC 3 8 Padding (zeroes) 5 Output Data Value #1 8 Output Data Value #2 8 Registration Acknowledgement #1 16 Registration Acknowledgement #2 16 CRC 4 8

TABLE 2 Description Size (bits) Transmitter Address 16 CRC 8 Button 1 Status 1 Button 2 Status 1 

What is claimed is:
 1. A system which enables the position of each of a plurality of labelled objects in a specified environment to be determined by determining the transit time of slowly propagating energy transmitted from a transmitter on each labelled object to a plurality of receivers positioned at fixed points in or around the specified environment, and computing therefrom the actual distance of the transmitter from the receivers, wherein the transmission of the slowly propagating energy is initiated by a burst of high speed propagating energy from a master transmitter located so as to cause transmitted bursts of such high speed energy to enter the said environment, the transmitter on the object being controlled by a receiver adapted to respond to an appropriately encoded burst of such high speed energy, each said burst being encoded so that only one of the object mounted receivers is triggered by each burst, each transmitter/receiver combination being referred to as a transponder, to thereby initiate a burst of slowly propagating energy therefrom, wherein the specified environment has at least two zones substantially isolated from one another in respect of the slowly propagating energy, the times at which one set of transponders are triggered on objects hitherto understood to be in one zone are staggered within common timeslots with respect to the times at which another set of transponders are triggered on objects hitherto understood to be in another zone, each timeslot being of a sufficient length to enable the receivers to respond to the slowly propagating energy transmitted by the triggered transponders in both the first zone and another zone, and an algorithm is applied to verify the consistency of the transit times of the slowly propagating energy when ascribed to the different sets of transponders.
 2. A system according to claim 1, wherein the slowly propagating energy is ultrasound and the high speed energy is radio waves.
 3. A system according to claim 1, wherein, in order to be able to distinguish between sets of signals from different mobile transponders, it is first assumed that two different transponders are in different ultrasound zones, the triggering times of those two different mobile transponders, one from each of the two sets, are staggered, the system is adapted so that receivers are triggered when the first of the said two different mobile transponders is triggered, and the normal timeslot for a single zone environment is extended by (m−1)×i, (where m is the number of mobile transponders triggered in the staggered sequence, and i is the stagger time).
 4. A system according to claim 3, wherein nonlinear regression calculation is used to determine the 3D positions of the mobile transponders, said calculation being such as to converge to a solution only if it is given a set of consistent transponder-receiver distances and receiver positions.
 5. A system according to claim 4, wherein, given a set of n possible trigger times for mobile transponders, t₁, . . . t_(n), a first check is made to see that the number of sets of signals that were detected in independent ultrasound zones is the same as the number of mobile transponders that were triggered, and if this is not the case, the set of n possible trigger times is rejected.
 6. A system according to claim 5, wherein, for non-rejected readings, and for each set of signals s₁, . . . ,s_(n), a set of possible corresponding transmitter-receiver distances is calculated for each trigger time, d₁₁, d₁₂, . . . d_(nn), and the nonlinear regression calculation is run on each set of transmitter-receiver distances, using an algorithm which uses the positions of receivers that detect the corresponding signals, to obtain a set of results r₁₁, r₁₂, . . . ,r_(nn), wherein each value of r_(xy), where 1≦×≦n and 1≦y≦n, is either a 3D position indicating that the set of signals s_(x) could have been generated by a mobile transponder at time t_(y) or an error value indicating that the set of signals s_(x) could not have been generated by a mobile transponder triggered at time t_(y).
 7. A system according to claim 6, wherein, given that one and only one set of signals is consistent with each trigger time, the mobile transponder which gave rise to those signals is identified to enable a 3D position to be ascribed to each mobile transponder.
 8. A system according to claim 6, wherein, given that at least one set of signals is inconsistent with the trigger times, at least one further heuristic is applied to the results to determine 3D positions for the mobile transmitters.
 9. A system according to claim 8, wherein the further applied heuristic is that if one set of signals is consistent with two trigger times t_(a) and t_(b), but another set of signals is consistent with trigger time t_(a) and no other set of signals is consistent with trigger time t_(b), then the first set of signals was probably generated by a mobile transponder triggered at time t_(b).
 10. A system according to claim 9, wherein simulations are performed to validate the applied heuristic or heuristics. 